package h0723;

import java.util.*;
import java.util.stream.Collectors;

/**
 * @author 不知名帅哥
 * @version 1.0
 * @description 剩余银饰的重量
 * @date 2024/7/23 14:17
 */
public class WeightRemainSilverJewelry {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }
        getResult(arr, n);
    }

    private static void getResult(int[] arr, int n) {
        Arrays.sort(arr); //排序
        LinkedList<Integer> stack = new LinkedList<>();
        for (int a : arr) {
            stack.add(a);
        }
        while (stack.size() >=3) {
            int a = stack.removeLast();
            int b = stack.removeLast();
            int c = stack.removeLast();
            // 如果 x == y == z，那么下面公式结果：remain=0, 表示三块银饰完全融掉
            // 如果 x == y && y != z，那么下面公式结果：remain = z - y
            // 如果 x != y && y == z，那么下面公式结果：remain = y - x
            // 如果 x != y && y != z，那么下面公式结果：remain = Math.abs((z - y) - (y - x))
            int remainer=Math.abs((a-b)-(b-c));
            if (remainer!=0){
                //当 Collections.binarySearch() 返回负数时，表示被查找的元素不在列表中。负数的具体值为 -(插入点) - 1，其中插入点是这个元素在保持列表有序的情况下应该插入的位置。
                int index= Collections.binarySearch(stack,remainer);
                if (index<0){
                    index=-index-1; //计算插入点
                }
                stack.add(index,remainer); //插入到有序列表中参与后续计算
            }
        }
        if (stack.size()==2){
            System.out.println(Math.max(stack.get(0),stack.get(1)));
        }else if (stack.size()==1){
            System.out.println(stack.peek());
        }else {
            System.out.println(0);
        }
    }

}
